![]() 摩耗度をビットレベルで平準化するフラッシュメモリ装置およびフラッシュメモリプログラミング方法
专利摘要:
フラッシュメモリの摩耗度を平準化するフラッシュメモリ装置およびフラッシュメモリプログラミング方法を提供する。メモリセルアレイと、データページ内の「1」および「0」の個数に基づいて前記データページを反転または反転しないことによって、プログラミングページを生成する反転決定部と、前記生成されたプログラミングページを前記メモリセルアレイに格納するプログラミング部と、前記メモリセルアレイに格納されたプログラミングページを読み出し、前記読み出したプログラミングページのエラー有無に応じて、前記プログラミングページから前記データページを復元して出力するデータ判定部を含むことを特徴とし、これによってメモリセルの摩耗度の平準化が可能になる。 公开号:JP2011508358A 申请号:JP2010540550 申请日:2008-08-25 公开日:2011-03-10 发明作者:ブンソー キム,;ヒュンモ チャン,;ハンモク パク, 申请人:インディリンクス カンパニー., リミテッド.; IPC主号:G11C16-02
专利说明:
[0001] 本発明はフラッシュメモリ装置に関し、特に、フラッシュメモリの摩耗度を平準化するフラッシュメモリ装置およびフラッシュメモリプログラミング方法に関する。] 背景技術 [0002] フラッシュメモリは、集積度が高くて衝撃に強く、低電力で動作可能な不揮発性メモリ素子であり、携帯端末や組み込みシステム(embedded system)などのみならずPCやサーバで使われるハードディスクに替わるストレージ媒体として近年注目を浴びている。] [0003] フラッシュメモリは、ハードディスクのような一般的なブロック装置とは異なり、一度記憶されたデータを新しい値で更新するためには、まずは該当の位置を消去する動作が必要となる。] [0004] すなわち、フラッシュメモリの書き込み動作は、すべてのメモリセルが「1」の値に初期化された状態で、必要なメモリセルを「0」の値に変更することからなる。このように、記憶されたデータを新しい値に更新するためには、該当位置のすべてのセルを「1」の値に初期化した後に、再び、書き込み動作が行われる。] [0005] このとき、読み出し動作および書き込み動作は、ページ単位で行われる。フラッシュメモリのページとは、物理的に連続したアドレスを有するバイト(byte)のことを指す。消去動作は、読み出し動作および書き込み動作とは異なり、ブロック単位で行われる。フラッシュメモリのブロックとは、物理的に連続した複数個のページのことを指す。現在の実施形態では、ページの大きさは512B〜4KBであり、ブロックの大きさは16KB〜512KBである。] [0006] 現在の実施形態では、例えば、フラッシュメモリのページは主領域と補助領域に分けられており、主領域にはデータが記憶され、補助領域には、主領域に記憶されたデータと関連する情報と、ページに関連する情報が記憶される。補助領域に記憶される情報をメタ情報という。メタ情報としては、例えば、巡回冗長検査(CRC:Cyclic Redundancy Check)情報、またはエラー訂正コード(ECC:Error Correction Codes)情報などがある。CRCまたはECCは、書き込み動作や読み出し動作の過程におけるエラー有無を検出したり、ページの物理的な損傷の有無を判定したりするために用いることができる。] [0007] フラッシュメモリの読み出し、書き込み、消去動作は、すべてデータを記憶するメモリセルに電気的なストレスを加えて微細な摩耗を引き起こす。このため、長時間使用することにより、メモリセルが正常に「0」および「1」を区別することができない状態に至ることになる。] [0008] 書き込み動作および消去動作が引き起こす摩耗の大きさは、読み出し動作が引き起こす摩耗の大きさよりも極めて大きいため、フラッシュメモリの寿命を延ばすためには、可能な限り1つのメモリセルで発生する書き込みおよび消去動作の回数を減らす摩耗度の平準化を必要とする。] [0009] 摩耗度を平準化するための従来の発明としては、消去動作の単位であるブロックレベルにおける摩耗度の平準化方法である。すなわち、消去動作の単位であるブロックごとに消去動作の回数を記録して、消去動作の回数が一定の数以下に維持されるようにフラッシュ メモリを管理する方法が提案されている。このような従来のフラッシュメモリの摩耗度の平準化方法は、1つのブロックに属するすべてのメモリセルが同一のレベルの摩耗度を有すると仮定して、メモリセルのレベルにおいてそれぞれの摩耗度の差を考慮することができなかった。] 発明が解決しようとする課題 [0010] 本発明は、新しいプログラミング技法を用いることによって、メモリセルの寿命を延ばすことができる装置および方法を提供することを目的とする。 また、本発明は、新しいデータ検出技法を用いることによって、メモリセルのレベルで摩耗度を平準化することができる装置および方法を提供することを目的とする。] 課題を解決するための手段 [0011] 上述するような本発明の目的を達成するために、発明されたものであって、本発明のメモリ装置は、メモリセルアレイと、 データページ内の「1」および「0」の個数に基づいて、前記データページを反転するか否かによって、プログラミングページを生成する反転決定部と、 前記生成されたプログラミングページを、前記メモリセルアレイに記憶するプログラミング部と、 前記メモリセルアレイに記憶されたプログラミングページを読み出し、前記読み出したプログラミングページのエラーの有無に応じて、前記プログラミングページから前記データページを復元して出力するデータ判定部と、 を含むことを特徴とする。] [0012] また、本発明のメモリ装置は、メモリセルアレイと、 データページを複数のデータサブページに分割するページ分割部と、 前記各データサブページ内の「1」および「0」の個数に基づいて、前記各データサブページを反転するか否かによって、前記各データサブページに対応する各プログラミングページを生成する反転決定部と、 前記生成された各プログラミングページを、前記メモリセルアレイに記憶するプログラミング部と、 を含むことを特徴とする。] [0013] また、本発明のメモリプログラミング方法は、データページ内の「1」および「0」の個数に基づいて、前記データページの反転の有無を決定するステップと、 前記決定されたデータページの反転の有無に応じて、前記データページからプログラミングページを生成するステップと、 前記生成されたプログラミングページを、メモリセルアレイに記憶するステップと、 前記メモリセルアレイに記憶されたプログラミングページを読み出すステップと、 前記読み出したプログラミングページのエラーの有無に応じて、前記読み出したプログラミングページの反転の有無を決定するステップと、 前記決定された読み出したプログラミングページの反転の有無に応じて、前記読み出したプログラミングページからデータページを復元するステップと、 を含むことを特徴とする。] [0014] また、本発明のメモリプログラミング方法は、データページを複数のデータサブページに分割するステップと、 前記各データサブページ内の「1」および「0」の個数に基づいて、前記各データサブページの反転の有無を決定するステップと、 前記決定された各データサブページの反転の有無に応じて、前記各データサブページか ら各データサブページに対応する各プログラミングページを生成するステップと、 前記生成された各プログラミングページを、メモリセルアレイに記憶するステップと、を含むことを特徴とする。] 図面の簡単な説明 [0015] 図1は、本発明の一実施形態におけるフラッシュメモリ装置を示す。 図2は、本発明の別の実施形態におけるフラッシュメモリ装置を示す。 図3は、本発明の別の実施形態におけるメモリセルアレイを示す。 図4は、本発明の別の実施形態におけるフラッシュメモリ装置で実行されるメモリプログラミング方法を示す。 図5は、図4のフラッシュメモリ装置で実行されるメモリプログラミング方法を示す動作フローチャートである。 図6は、本発明のさらなる別の実施形態におけるメモリ読み出し方法を示す動作フローチャートである。 図7は、本発明の別の実施形態におけるフラッシュメモリ装置で実行されるメモリプログラミング方法を示す。 図8は、本発明の別の実施形態におけるメモリ読み出し方法を示す動作フローチャートである。] 図1 図2 図3 図4 図5 図6 図7 図8 実施例 [0016] 以下、本発明にかかる好適な実施形態について図面を参照して詳細に説明するが、本発明が実施形態によって制限されたり限定されたりすることはない。各図面に記された同一の参照符号は同一の部材を示す。] [0017] 消去動作の対象となるブロック内のすべてのフラッシュメモリセルに同一程度の摩耗が生じることはない。消去動作は、該当ブロック内のすべてのメモリセルを「1」の値に初期化する動作である。消去動作が実行されるブロック内には「0」から「1」に値が変更されるメモリセルと、値の変更なく「1」の状態で残っているメモリセルが存在する。この場合、書き込み動作によってまず「1」から「0」に変更され、消去動作によって再び「0」から「1」に変更されたメモリセルは、「1」の状態で残っていたメモリセルに比べて生じる摩耗の程度は極めて大きい。] [0018] したがって、書き込み動作および消去動作が繰り返される状況では、「1」の状態で残っているメモリセルの個数が多いほど該当のブロックの摩耗度は低くなり、その結果、フラッシュメモリ装置全体として寿命が延びることになる。] [0019] 本発明のフラッシュメモリ装置は、各メモリセルに対して摩耗度を最小化する方法を提供し、フラッシュメモリ全体として寿命を延ばすことができる。 本発明のフラッシュメモリ装置は、書き込み動作の対象となるページ内に「0」の値を有するビットの個数が、「1」の値を有するビットの個数よりも多い場合、「0」および「1」の値を反転して記憶することによって、「0」の値に変更されるメモリセルの個数を最小化することができる。] [0020] 図1は、本発明の一実施形態におけるフラッシュメモリ装置100を示す。 図1に示すように、フラッシュメモリ装置100は、メモリセルアレイ110、プログラミング部120、反転決定部130、およびデータ判定部140を含んでいる。] 図1 [0021] メモリセルアレイ110は、ページ111を含んでもよい。 プログラミング部120、反転決定部130、およびデータ判定部140のそれぞれは、フラッシュメモリ装置100の周辺回路に含まれていてもよく、また、フラッシュメモリ装置100の所定のコンピュータシステムのコントローラに含まれていてもよい。] [0022] 反転決定部130は、データページ内の「1」および「0」の個数に基づいて、データページを反転するか否かによって、プログラミングページを生成する。 本明細書において、フラッシュメモリ装置100のコントローラ(図示せず)で、ハンドリングするデータとして同時にプログラムされる単位をデータページという。また、メモリアレイ110のページ111に物理的にプログラムされるデータとして同時にプログラムされる単位をプログラミングページという。] [0023] 本明細書で用いられる「データページ」および「プログラミングページ」は、前述するような機能と用途に特定されるべきであり、名称によって権利範囲が制限されることはない。] [0024] 反転決定部130は、データページ内の「0」が「1」よりも多ければ、データページを反転してプログラミングページを生成してもよい。一方で、反転決定部130は、データページ内の「0」が「1」よりも少なければ、データページを反転せずにプログラミングページを生成してもよい。] [0025] 本明細書において詳細に記載されないが、メモリセルアレイ110に物理的にプログラムされる過程が「0」から「1」に変化する過程であってもよい。このような場合、反転決定部130は、データページ内の「1」が「0」よりも多ければ、データページを反転してプログラミングページを生成してもよい。] [0026] 本発明のフラッシュメモリ装置100は、メモリセルの摩耗度を減らすために発明されたものであって、物理的なプログラム過程に対応して反転決定部130の動作を変更して適用することは、当業者であれば自明である。] [0027] プログラミング部120は、生成されたプログラミングページをメモリセルアレイ110内のページ111に記憶する。 このとき、プログラミング部120のデータ記憶過程は、ページ111内の各メモリセルに高電圧を一定時間印加する過程であってもよい。このような高電圧の印加過程は、各メモリセルにストレスを加えることになり、各メモリセルに物理的な損傷が生じることになる。] [0028] プログラミング部120のデータ記憶過程は、ページ111内の各メモリセルの閾値電圧を変化させる過程であってもよい。このようなデータの記憶過程は、各メモリセルの摩耗度を増加させる恐れがあるため、閾値電圧が変化するメモリセルの数が減少する方向にデータの格納過程を調整することが好ましい。] [0029] 本実施形態の反転決定部130は、プログラミング部120のデータの記憶過程において、ページ111内のメモリセルの中で閾値電圧が変化するメモリセルの数が、閾値電圧が変化しないメモリセルの数よりも少なくなるようにデータページの反転の有無を決定し てもよい。] [0030] フラッシュメモリ装置100は、このような構成によってページ111内のメモリセルのストレスを減らすことで、メモリセルの摩耗度およびメモリセルに対する物理的な損傷を減らすことができる。] [0031] フラッシュメモリ装置100は、反転決定部130がデータページを反転したか否かに関する情報をメモリセルアレイ110に記憶しなくてもよい。 データ判定部140は、メモリセルアレイ110内のページ111に記憶されたプログラミングページを読み出す。データ判定部140は、読み出したプログラミングページのエラー有無に応じて、プログラミングページからデータページを復元して出力する。] [0032] データ判定部140は、読み出したプログラミングページにエラーがあれば、読み出したプログラミングページを反転してデータページを復元してもよい。メモリセルアレイ110に、データページとプログラミングページとの関係に関する情報が記憶されていなかった場合、データ判定部140は、データページが反転されないままプログラミングページとして生成されたと仮定し、読み出したプログラミングページに対するエラー検査を行ってもよい。データ判定部140は、読み出したプログラミングページにエラーがあれば、読み出したプログラミングページに対する仮定が間違っていると判断することができる。データ判定部140は、読み出したプログラミングページにエラーがあれば、データページが反転してプログラミングページとして生成されたと仮定し、読み出したプログラミングページを反転してデータページを復元して出力してもよい。] [0033] アプリケーションによっては、メモリセルアレイ110に「0」が記憶される頻度が、「1」が記憶される頻度よりも多くなってもよい。この場合、データ判定部140は、データページが反転してプログラミングページとして生成されたと仮定し、読み出したプログラミングページを反転してエラー検査を実行してもよい。] [0034] データ判定部140が読み出したプログラミングページに対するエラー検査を実行する方法は、読み出したプログラミングページに含まれたエラー訂正コード(ECC)からエラーを検査したり、読み出したプログラミングページをECC復号化したり、読み出したプログラミングページに含まれたパリティを検査する方法であってもよい。] [0035] フラッシュメモリ装置100は、データページの反転の有無に対する別の情報をメモリセルアレイ110に記憶せず、データページの復元過程において、既にデータページに含まれているECCやパリティを用いるため、データの記憶空間に対するオーバーヘッドを減らすことができる。] [0036] 図2は、本発明の別の実施形態におけるフラッシュメモリ装置200を示す。 図2に示すように、フラッシュメモリ装置200は、メモリセルアレイ210、プログラミング部220、反転決定部230、およびページ分割部240を含む。] 図2 [0037] メモリセルアレイ210は、ページ211を含んでいてもよい。 プログラミング部220、反転決定部230、およびページ分割部240のそれぞれは、フラッシュメモリ装置200の周辺回路に含まれていてもよく、また、フラッシュメモリ装置200のコントローラに含まれていてもよい。] [0038] ページ分割部240は、データページを複数のデータサブページに分割する。 反転決定部230は、各データサブページに対して反転の有無を決定する。反転決定部230は、各データサブページ内の「1」および「0」の個数に基づいて、各データサブ ページを反転するか否かによって、各データサブページに対応する各プログラミングページを生成する。] [0039] 図2には、ページ分割部240が1つのデータページを4個のデータサブページに分割する実施形態が示されている。 反転決定部230は、4個の各データサブページに対して反転の有無を決定する。] 図2 [0040] プログラミング部220は、データサブページが反転してプログラミングページが生成されたか否かに関する反転フラグをメモリセルアレイ210に記憶してもよい。反転フラグは、各データサブページに対して生成されてもよい。プログラミング部220は、ページ211内の補助領域に反転フラグを記憶してもよい。] [0041] 反転決定部230は、各データサブページに対して反転有無を決定してもよい。反転決定部230は、第1データサブページ内の「0」が「1」よりも多ければ、第1データサブページを反転して第1プログラミングページを生成し、第2データサブページ内の「0」が「1」よりも多くなければ、第2データサブページを反転せずに第2プログラミングページを生成してもよい。] [0042] プログラミング部220のデータの記憶過程は、ページ211内の各メモリセルの閾値電圧を変化させる過程であってもよい。このとき、反転決定部230は、プログラミング部220のデータの記憶過程において、ページ211内のメモリセルの中で閾値電圧の変化するメモリセルの数が、閾値電圧の変化しないメモリセルの数よりも少なくなるようにデータページの反転の有無を決定してもよい。] [0043] フラッシュメモリ装置200は、データ判定部(図示せず)をさらに含んでもよい。データ判定部は、メモリセルアレイ210内のページ211に記憶された各プログラミングページを反転するか否かによって、各データサブページを復元してもよい。データ判定部は、復元されたデータサブページを結合してデータページを復元してもよい。] [0044] フラッシュメモリ装置200は、更なる別の実施形態としてデータ判定部(図示せず)を含んでもよい。データ判定部は、メモリセルアレイ210内のページ211に記憶された各プログラミングページを読み出してもよい。データ判定部は、読み出した各プログラミングページのエラーの有無に応じて、各プログラミングページから各データサブページを復元してもよい。データ判定部は、復元されたデータサブページを結合してデータページを復元してもよい。このとき、フラッシュメモリ装置200は、各データサブページの反転の有無と関連する情報をメモリセルアレイ210に記憶していなくてもよい。データ判定部は、読み出した各プログラミングページに対して反転の有無を決定してもよい。すなわち、第1の読み出したプログラミングページにエラーがあれば、第1の読み出したプログラミングページを反転して第1のデータサブページを生成し、第2の読み出したプログラミングデータにエラーがなければ、第2の読み出したプログラミングページを反転せずに第2のデータサブページを生成してもよい。データ判定部は、読み出した各プログラミングページをECC復号化したり、読み出した各プログラミングページのパリティをチェックしたりしてエラーの有無を判定してもよい。] [0045] 本発明の更なる別のフラッシュメモリ装置(図示せず)は、ページの補助領域にメタ情報の1つとしてECCまたはパリティを記憶した場合に、領域ごとに反転情報を記憶しなくとも読み出し動作において、ページの反転の有無を判断して正常なデータに復元することができる。] [0046] 図3は、本発明の別の実施形態におけるメモリセルアレイを示す。 図3に示すように、メモリセルアレイは(N+1)個のブロックを含む。 メモリセルアレイは、ブロック(0)310、ブロック(1)320、ないし、ブロック(N)340のブロックを含む。各ブロックは、消去動作が実行される単位である。] 図3 [0047] 各ブロックはM個のページを含む。 図3には、ページ(0)331、ページ(1)332、ページ(2)333、ページ(3)334などが示されている。] 図3 [0048] 各ページは、プログラム動作が実行される単位である。 1つのページに記憶されるデータが更新される場合には、ページが含まれたブロック全体が消去されて初期化された後、ページに更新されたデータが記憶される。] [0049] 図4は、本発明のフラッシュメモリ装置100で実行されるメモリプログラミング方法を示す。 図4に示すように、初期化されたブロック(K)410は、4個のページを含む。説明を簡単にするために、図4に示すメモリプログラミング方法では、ブロックが既に初期化された状態であると仮定する。] 図4 [0050] コントローラによって、フラッシュメモリ装置100に伝送されたデータページは、第1のデータページ431および第2のデータページ441である。第1のデータページおよび第2のデータページは、それぞれ初期化されたブロック(K)410の第2のページおよび第3のページに対応する。] [0051] フラッシュメモリ装置100は、第1のデータページ431内の「0」と「1」の個数を比較する。説明を簡単にするために、第1のデータページ431は8ビットであると仮定する。第1のデータページ431内には「0」が6個あり、「1」が2個あるため、フラッシュメモリ装置は、第1のデータページ431を反転して第1のプログラミングページ432を生成する。] [0052] フラッシュメモリ装置100は、第2のデータページ441内の「0」と「1」の個数を比較する。第2のデータページ441内には「0」が2個あり、「1」が6個あるため、フラッシュメモリ装置は、第2のデータページ441を反転せずに第2のプログラミングページ442を生成する。] [0053] フラッシュメモリ装置100は、生成された第1のプログラミングページ432をブロック(K)420内の第2のページ422に記憶し、第2のプログラミングページ442を第3のページ423に記憶する。] [0054] ブロック(K)420内の第1のページ421および第4のページ424は、初期化された状態のまま維持される。 図5は、図4のフラッシュメモリ装置で実行されるメモリプログラミング方法を示す動作フローチャートである。] 図4 図5 [0055] 図5に示すように、メモリプログラミング方法は、データページ内の「1」および「0」の個数を計数する(S510)。 メモリプログラミング方法は、決定された反転の有無に応じてデータページからプログラミングページを生成してもよい。] 図5 [0056] データページ内の「0」が「1」よりも多ければ、メモリプログラミング方法は「0」と「1」を反転する(S520)。このとき、メモリプログラミング方法は「0」と「1 」が反転したデータをプログラミングページで生成する。] [0057] データページ内の「0」が「1」よりも多くなければ、メモリプログラミング方法はデータページをプログラミングページとして生成してもよい。 メモリプログラミング方法は、生成されたプログラミングページをメモリセルアレイに記憶する(S530)。] [0058] 図6は、本発明のさらなる別の実施形態におけるメモリ読み出し方法を示す動作フローチャートである。 図6に示すように、メモリ読み出し方法はメモリセルアレイに記憶されたプログラミングページを読み出す(S610)。] 図6 [0059] メモリ読み出し方法は、読み出したプログラミングページにエラーが検出されたか否かを判定する(S620)。 メモリ読み出し方法は、読み出したプログラミングページのエラー有無に応じて、読み出したプログラミングページの反転の有無を決定してもよい。] [0060] メモリ読み出し方法は、決定された反転の有無に応じて、読み出したプログラミングページからデータページを復元してもよい。 読み出したプログラミングページにエラーが検出されれば、メモリ読み出し方法は、読み出したプログラミングページの「0」と「1」を反転する(S630)。] [0061] メモリ読み出し方法は、反転したプログラミングページにエラーが検出されたか否かを判定する(S640)。] [0062] 反転したプログラミングページにエラーが検出されれば、メモリ読み出し方法は、読み出したプログラミングページをエラーとして決定する。このとき、メモリ読み出し方法は、プログラミングページを再び読み出してもよい。] [0063] 反転したプログラミングページにエラーが検出されなければ、メモリ読み出し方法は、反転したプログラミングページをデータページに復元する。 図7は、本発明のフラッシュメモリ装置200で実行されるメモリプログラミング方法を示す。] 図7 [0064] 図7に示すように、初期化されたブロック(K)710は、4個のページを含む。説明を簡単にするために、図7に示すメモリプログラミング方法では、ブロックが既に初期化された状態であると仮定する。] 図7 [0065] コントローラによってフラッシュメモリ装置200に伝送されたデータページは、初期化されたブロック(K)710の第2のページに対応する。 フラッシュメモリ装置200は、データページを2つのサブページに分割する。] [0066] 分割された第1のデータサブページ731は、1つの「0」と3つの「1」を含む。フラッシュメモリ装置200は、第1のデータサブページ731を反転させずに、第1のプログラミングサブページ733を生成する。] [0067] 分割された第2のデータサブページ732は、3つの「0」と1つの「1」を含む。フラッシュメモリ装置200は、第2のデータサブページ732を反転し、第2のプログラミングサブページ734を生成する。] [0068] フラッシュメモリ装置200は、生成された第1のプログラミングサブページ733および第2のプログラミングサブページ734をブロック(K)720内の第2のページ722に記憶する。] [0069] ブロック(K)720内の第1のページ721、第3のページ723、および第4のページ724は、初期化された状態のまま維持される。 図8は、フラッシュメモリ装置200で実行されるメモリ読み出し方法を示す動作フローチャートである。] 図8 [0070] 図8に示すように、メモリ読み出し方法は、メモリセルアレイ210からプログラミングページを読み出す(S810)。 メモリ読み出し方法は、プログラミングページの分割領域の個数を計数する(S820)。このとき、プログラミングページの分割に関する情報は、メタ情報としてプログラミングページの補助領域に含まれていてもよい。] 図8 [0071] メモリ読み出し方法は、読み出したプログラミングページにエラーが検出されるか否かを判定する(S830)。 メモリ読み出し方法は、エラーが検出されなければ、読み出したプログラミングページをデータページに復元して、コントローラに出力してもよい。] [0072] メモリ読み出し方法は、エラーが検出されれば、読み出したプログラミングページに対して検査しなかった分割領域の反転の組み合わせが存在するか否かを探索する(S840)。] [0073] メモリ読み出し方法は、探索された反転の組み合わせに応じて、分割領域の「0」と「1」を反転する(S850)。 メモリ読み出し方法は、反転したプログラミングページにエラーが検出されるか否かを再び判定する(S830)。] [0074] メモリ読み出し方法は、ステップS840の探索の結果、反転の組み合わせが存在しなければ、読み出したプログラミングページにエラーが含まれていると最終的に決定してもよい。] [0075] メモリ読み出し方法は、分割領域の個数がN=2k個であるとき、kの値を補助領域のメタ情報として記憶したり、予め決定した値を用いたりしてもよい。メモリ読み出し方法は、ECCやパリティでページ検査を行ってもよく、検査の結果、エラーがなければ反転した領域がないものと決定してもよい。] [0076] N個の領域に分割された場合、ECCやパリティを用いたエラー検査は、最大2N回繰り返してもよく、ハードウェア回路を用いる並列処理が可能である。 再度、図2によれば、ページ分割部240は、物理的に記憶される「0」の個数を最小化するために、任意の個数や任意の大きさにデータページを分割してもよい。このとき、分割および反転の情報は、ページ211内の補助領域に記憶してもよい。記憶された分割および反転の情報は、読み出し動作でデータページを復元するために用いてもよい。] 図2 [0077] ページ分割部240は、データページを4個のデータサブページに分割する場合に、第1のデータサブページをaビット、第2のデータサブページをbビット、第3のデータサブページをcビット、第4のデータサブページをdビットとなるように分割してもよい。] [0078] このとき、プログラミング部220は、ページ211に4個のデータサブページに対す る4個の分割情報を記憶してもよい。各分割情報は、分割されたデータサブページの大きさ(aビット、bビット、cビット、dビット)を含んでもよい。プログラミング部220は、4個の分割情報とともに、各データサブページの反転の有無をページ211に記憶してもよい。] [0079] 記憶される分割および反転の情報をメタ情報とすれば、メタ情報は、各データサブページの大きさ(ビット数)および反転の有無を示すため、xビットでサブページの大きさを表すことができれば、メタ情報は(x+1)ビットが必要となる。] [0080] 分割されるデータサブページの数が多くなるほど、メタ情報の大きさが大きくなり、データページの復元のための過程が複雑になる。ページ分割部240は、メタ情報の大きさおよび復元過程の複雑さに基づいて、最適化された分割の数を決定してもよい。] [0081] 本発明におけるメモリプログラミング方法およびメモリ読み出し方法は、多様なコンピュータ手段により行われるプログラム命令によって実現され、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともできる。記録媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体としては、例えば、ハードディスク、フレキシブルディスク、磁気テープなどの磁気媒体、CD−ROM、DVDなどの光記録媒体、フロプティカルディスクなどの磁気−光媒体、およびROM(read-only memory)、RAM(random access memory)、フラッシュメモリなどのようなプログラム命令を保存して実行するように構成されたハードウェア装置が含まれる。プログラム命令としては、例えば、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードも含まれる。上述したハードウェア装置は、本実施例における動作を行うため1つ以上のソフトウェアモジュールとして作動するように構成され、その逆も同様である。] [0082] 本実施例におけるフラッシュメモリ装置および/またはメモリコントローラは、多様な形態のパッケージを用いて実現することができる。例えば、本実施例におけるフラッシュメモリ装置および/またはメモリコントローラは、PoP(Package on Packages)、BGA(Ball Grid Arrays)、CSP(Chip Scale Packages)、PLCC(Plastic Leaded Chip Carrier)、PDIP(Plastic Dual In-Line Package)、ダイインワッフルパック(Die in Waffle Pack)、ダイインウェハフォーム(Die in Wafer Form)、COB(Chip On Board)、CERDIP(Ceramic Dual In-Line Package)、MQFP(Plastic Metric Quad Flat Pack)、QFP(Quad Flatpack)、SOIC(Small Outline IntegratedCircuit)、SSOP(Shrink Small Outline Package)、TSOP(Thin Small Outline)、TQFP(Thin Quad Flatpack)、SIP(System In Package)、MCP(Multi Chip Package)、WFP(Wafer-levelFabricated Package)、WSP(Wafer-Level Processed Stack Package)などのようなパッケージを用いて実現してもよい。] [0083] フラッシュメモリ装置および/またはメモリコントローラは、メモリーカードを構成してもよい。このような場合、メモリコントローラは、USB、MMC(Multi Media Card)、PCIExpress、SATA(シリアルATA)、PATA(パラレルATA)、SCSI、ESDI(Enhanced Small Device Interface)、IDEなどのような多様なインターフェースプロトコルの中のいずれかを用いて外部装置(例えば、ホスト)と通信するように構成してもよい。] [0084] フラッシュメモリ装置は、電力が遮断されても記憶されたデータを維持できる不揮発性 メモリ装置である。携帯電話、PDA(personal digital assistant)、デジタルカメラ、ポータブルゲーム機、MP3プレーヤーなどのモバイル装置の使用増加に応じてフラッシュメモリ装置は、データストレージとしてだけでなくコードストレージとしてより広く用いられることになる。フラッシュメモリ装置は、さらに、高精細度テレビジョン放送(HDTV:high definition television)、DVD、ルーター、グローバル・ポジショニング・システム(GPS:Global Positioning System)などのホームアプリケーションに用いられてもよい。] [0085] 本実施例におけるコンピュータシステムは、バスに電気的に接続されたマイクロプロセッサ、ユーザーインターフェース、ベースバンドチップセットなどのモデム、メモリコントローラ、フラッシュメモリ装置を含む。フラッシュメモリ装置には、マイクロプロセッサによって処理された、もしくは、処理されるNビットデータ(Nは1またはそれよりも大きい整数)がメモリコントローラに記憶される。本実施例におけるコンピュータシステムがモバイル装置の場合、コンピュータシステムの動作電圧を供給するためのバッテリーが追加されてもよい。] [0086] 本実施例におけるコンピュータシステムには、応用チップセット、カメライメージプロセッサ(CIP:Camera Image Processor)、モバイルDRAM(mobile Dynamic Random Access Memory)などがさらに含まれることは、当業者にとって自明である。メモリコントローラとフラッシュメモリ装置は、例えば、データを記憶するための不揮発性メモリを用いるSSD(Solid State Drive/Disk)を構成してもよい。] [0087] 上述したように、本発明の限定された実施形態と図面によって説明したが、本発明は上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、多様な修正および変形が可能である。したがって、本発明の範囲は記載された実施形態に限定されて決めてはならず、特許請求の範囲だけでなく、この特許請求の範囲と均等なものなどによって定めなければならない。]
权利要求:
請求項1 メモリセルアレイと、データページ内の「1」および「0」の個数に基づいて、前記データページを反転するか否かによって、プログラミングページを生成する反転決定部と、前記生成されたプログラミングページを、前記メモリセルアレイに記憶するプログラミング部と、前記メモリセルアレイに記憶されたプログラミングページを読み出し、前記読み出したプログラミングページのエラーの有無に応じて、前記プログラミングページから前記データページを復元して出力するデータ判定部と、を含むことを特徴とするメモリ装置。 請求項2 前記反転決定部は、前記データページ内の「0」が「1」よりも多ければ、前記データページを反転してプログラミングページを生成することを特徴とする請求項1に記載のメモリ装置。 請求項3 前記反転決定部は、前記プログラミング部がプログラミングページを記憶する間に、前記メモリセルアレイ内で閾値電圧が変化するメモリセルが、閾値電圧が変化しないメモリセルよりも少なくなるように、前記データページの反転の有無を決定することを特徴とする請求項1に記載のメモリ装置。 請求項4 前記データ判定部は、前記読み出したプログラミングページにエラーがあれば、前記読み出したプログラミングページを反転して、前記データページを復元することを特徴とする請求項1に記載のメモリ装置。 請求項5 前記データ判定部は、前記読み出したプログラミングページを、エラー訂正コード(ECC)復号化、もしくは、パリティチェックすることで、前記エラーの有無を判定することを特徴とする請求項1に記載のメモリ装置。 請求項6 前記メモリセルアレイに、前記データページが反転され、前記プログラミングページが生成されたか否かの情報が記憶されていないことを特徴とする請求項1に記載のメモリ装置。 請求項7 メモリセルアレイと、データページを複数のデータサブページに分割するページ分割部と、前記各データサブページ内の「1」および「0」の個数に基づいて、前記各データサブページを反転するか否かによって、前記各データサブページに対応する各プログラミングページを生成する反転決定部と、前記生成された各プログラミングページを、前記メモリセルアレイに記憶するプログラミング部と、を含むことを特徴とするメモリ装置。 請求項8 前記プログラミング部は、前記各データサブページの反転の有無に関する反転フラグを前記メモリセルアレイに記憶することを特徴とする請求項7に記載のメモリ装置。 請求項9 前記メモリセルアレイに記憶された各プログラミングページおよび反転フラグを読み出し、前記読み出した反転フラグに応じて、前記データページを復元して出力するデータ判定部をさらに含むことを特徴とする請求項8に記載のメモリ装置。 請求項10 前記メモリセルアレイに記憶された各プログラミングページを読み出し、前記読み出した各プログラミングページのエラー有無に応じて、前記各プログラミングページから各データサブページを復元し、前記復元された各データサブページを結合してデータページを復元して出力するデータ判定部を含むことを特徴とする請求項7に記載のメモリ装置。 請求項11 前記データ判定部は、前記読み出した各プログラミングページにエラーがあれば、前記読み出した各プログラミングページを反転して、前記各データサブページを復元することを特徴とする請求項10に記載のメモリ装置。 請求項12 前記データ判定部は、前記読み出した各プログラミングページを、エラー訂正コード(ECC)復号化、もしくは、パリティチェックすることで、前記エラーの有無を判定することを特徴とする請求項10に記載のメモリ装置。 請求項13 前記反転決定部は、前記各データサブページ内の「0」が「1」よりも多ければ、前記各データサブページを反転してプログラミングページを生成することを特徴とする請求項7に記載のメモリ装置。 請求項14 前記反転決定部は、前記プログラミング部が各プログラミングページを記憶する間に、前記メモリセルアレイ内で閾値電圧が変化するメモリセルが、閾値電圧が変化しないメモリセルよりも少なくなるように、前記各データサブページの反転の有無を決定することを特徴とする請求項7に記載のメモリ装置。 請求項15 データページ内の「1」および「0」の個数に基づいて、前記データページの反転の有無を決定するステップと、前記決定されたデータページの反転の有無に応じて、前記データページからプログラミングページを生成するステップと、前記生成されたプログラミングページを、メモリセルアレイに記憶するステップと、前記メモリセルアレイに記憶されたプログラミングページを読み出すステップと、前記読み出したプログラミングページのエラーの有無に応じて、前記読み出したプログラミングページの反転の有無を決定するステップと、前記決定された読み出したプログラミングページの反転の有無に応じて、前記読み出したプログラミングページからデータページを復元するステップと、を含むことを特徴とするメモリプログラミング方法。 請求項16 前記データページからプログラミングページを生成するステップにおいて、前記データページ内の「0」が「1」よりも多ければ、前記データページを反転するように決定することを特徴とする請求項15に記載のメモリプログラミング方法。 請求項17 前記読み出したプログラミングページの反転の有無を決定するステップにおいて、前記読み出したプログラミングページにエラーがあれば、前記読み出したプログラミングページを反転するように決定することを特徴とする請求項15に記載のメモリプログラミング方法。 請求項18 データページを複数のデータサブページに分割するステップと、前記各データサブページ内の「1」および「0」の個数に基づいて、前記各データサブページの反転の有無を決定するステップと、前記決定された各データサブページの反転の有無に応じて、前記各データサブページから各データサブページに対応する各プログラミングページを生成するステップと、前記生成された各プログラミングページを、メモリセルアレイに記憶するステップと、を含むことを特徴とするメモリプログラミング方法。 請求項19 前記各データサブページの反転の有無に関する反転フラグを、前記メモリセルアレイに記憶するステップと、前記メモリセルアレイに記憶された各プログラミングページおよび反転フラグを読み出すステップと、前記読み出した反転フラグに応じて、前記読み出した各プログラミングページを反転するか否かによって、前記データサブページを復元するステップと、前記復元されたデータサブページを結合してデータページを復元するステップと、をさらに含むことを特徴とする請求項18に記載のメモリプログラミング方法。 請求項20 前記メモリセルアレイに記憶された各プログラミングページを読み出すステップと、前記読み出した各プログラミングページのエラーの有無に応じて、前記読み出した各プログラミングページの反転の有無を決定するステップと、前記決定された読み出した各プログラミングページの反転の有無に応じて、前記読み出した各プログラミングページから各データサブページを復元するステップと、前記復元されたデータサブページを結合してデータページを復元するステップと、を含むことを特徴とする請求項18に記載のメモリプログラミング方法。 請求項21 請求項15から20のいずれかに記載の方法を実行するためのプログラムが記録されていることを特徴とするコンピュータ読み取り可能な記録媒体。
类似技术:
公开号 | 公开日 | 专利标题 US20170148511A1|2017-05-25|Memory access module for performing memory access management US9262261B2|2016-02-16|Memory devices facilitating differing depths of error detection and/or error correction coverage US9405639B2|2016-08-02|Systems and methods for retrieving data US8725985B2|2014-05-13|Logical-to-physical address translation for a removable data storage device US8448018B2|2013-05-21|Stripe-based memory operation US9058289B2|2015-06-16|Soft information generation for memory systems US9105305B2|2015-08-11|Dynamic higher-level redundancy mode management with independent silicon elements US8713381B2|2014-04-29|Systems and methods of using dynamic data for wear leveling in solid-state devices KR101564569B1|2015-11-03|상위-레벨 리던던시 정보 계산 US8812933B2|2014-08-19|Memory system and operating method thereof US9124300B2|2015-09-01|Error correction coding in non-volatile memory US8381076B2|2013-02-19|Variable sector-count ECC KR101912596B1|2018-10-29|리던던트 어레이들을 통한 비휘발성 메모리 프로그램 실패 복구 KR102101650B1|2020-04-17|비-휘발성 메모리에 대한 혼합된 입도 상위-레벨 리던던시 US8125825B2|2012-02-28|Memory system protected from errors due to read disturbance and reading method thereof US9043517B1|2015-05-26|Multipass programming in buffers implemented in non-volatile data storage systems ES2378371T3|2012-04-11|Optimización de recopia para un sistema de memoria KR101888074B1|2018-08-13|저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법 US8499217B2|2013-07-30|Memory device and error control codes decoding method JP5405513B2|2014-02-05|メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム JP4429685B2|2010-03-10|不揮発性メモリシステム内のエラー訂正コードのためのハイブリッド実装 US8473815B2|2013-06-25|Methods and systems of a flash memory controller and an error correction code | controller using variable-length segmented ECC data KR102065665B1|2020-01-13|더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법 US9817711B2|2017-11-14|Memory controller US9647697B2|2017-05-09|Method and system for determining soft information offsets
同族专利:
公开号 | 公开日 US20100287427A1|2010-11-11| KR100857252B1|2008-09-05| WO2009084797A1|2009-07-09| CN101999148A|2011-03-30| US8756464B2|2014-06-17| EP2232501A4|2011-05-11| EP2232501A1|2010-09-29|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 JPS62239500A|1986-04-10|1987-10-20|Mitsubishi Electric Corp|Semiconductor nonvolatile memory data writing device| JPS62241199A|1986-04-11|1987-10-21|Mitsubishi Electric Corp|Semiconductor memory device| JPS63291292A|1987-05-21|1988-11-29|Matsushita Electronics Corp|Read-only memory circuit| JPH0745085A|1993-07-30|1995-02-14|Tec Corp|データ書込装置及びデータ読取装置| JPH08279295A|1995-04-05|1996-10-22|Toshiba Corp|不揮発性半導体記憶部を含む記憶システム| JPH08335396A|1995-06-08|1996-12-17|Sony Corp|半導体不揮発性記憶装置| JP2005157781A|2003-11-26|2005-06-16|Sony Corp|情報処理装置および情報処理方法|JP2012169034A|2007-09-07|2012-09-06|Sandisk Corp|ページ内・ページ間オンチップデータ擬似ランダム化のための不揮発性メモリおよび方法| WO2017018008A1|2015-07-24|2017-02-02|ソニー株式会社|符号化装置、メモリコントローラ、通信システムおよび符号化方法| US10529417B2|2016-09-09|2020-01-07|Toshiba Memory Corporation|Storage device that inverts bits of data written into a nonvolatile memory thereof| US10719395B2|2018-03-22|2020-07-21|Toshiba Memory Corporation|Memory system|US5270979A|1991-03-15|1993-12-14|Sundisk Corporation|Method for optimum erasing of EEPROM| US6292868B1|1996-10-15|2001-09-18|Micron Technology, Inc.|System and method for encoding data to reduce power and time required to write the encoded data to a flash memory| JP3941149B2|1996-12-03|2007-07-04|ソニー株式会社|半導体不揮発性記憶装置| JPH10302485A|1997-04-28|1998-11-13|Hitachi Inf Technol:Kk|フラッシュ・メモリを有する情報処理装置| US6889304B2|2001-02-28|2005-05-03|Rambus Inc.|Memory device supporting a dynamically configurable core organization| JP3905091B2|2004-02-10|2007-04-18|シャープ株式会社|不揮発性半導体記憶装置及びブロック冗長救済方法| US7702875B1|2004-11-18|2010-04-20|Sun Microsystems, Inc.|System and method for memory compression| KR100643498B1|2005-11-21|2006-11-10|삼성전자주식회사|반도체 메모리에서의 데이터 버스 반전 회로 및 데이터버스 반전 방법| US7636831B1|2006-03-31|2009-12-22|Vmware, Inc.|Optimization of reverse mappings for immutable guest physical pages of virtual memories in a virtualized computer system| JP4928830B2|2006-05-18|2012-05-09|株式会社東芝|Nand型フラッシュメモリ装置及びメモリデバイス| JP2008077810A|2006-09-25|2008-04-03|Toshiba Corp|不揮発性半導体記憶装置| US7525864B2|2007-04-05|2009-04-28|Lsi Corporation|Memory data inversion architecture for minimizing power consumption| US7975109B2|2007-05-30|2011-07-05|Schooner Information Technology, Inc.|System including a fine-grained memory and a less-fine-grained memory| US7855913B2|2008-06-10|2010-12-21|Micron Technology, Inc.|Dynamically configurable MLC state assignment|US8327062B2|2008-12-09|2012-12-04|Infineon Technologies Ag|Memory circuit and method for programming in parallel a number of bits within data blocks| CN102201261B|2010-03-22|2015-03-04|旺宏电子股份有限公司|一种多阶单元半导体存储器编程装置及编程方法| CN101783165A|2010-03-26|2010-07-21|上海宏力半导体制造有限公司|一种半导体存储器、半导体存储器系统及其对应编程方法| US9170933B2|2010-06-28|2015-10-27|International Business Machines Corporation|Wear-level of cells/pages/sub-pages/blocks of a memory| US8749565B2|2010-11-19|2014-06-10|Apple Inc.|Error check-only mode| KR101621788B1|2012-07-30|2016-05-17|엠파이어 테크놀로지 디벨롭먼트 엘엘씨|Ssd에 데이터 기록| US9292428B2|2012-09-05|2016-03-22|Kabushiki Kaisha Toshiba|Memory system| CN102903387A|2012-09-27|2013-01-30|上海宏力半导体制造有限公司|存储阵列装置及其减小读电流的方法| DE102012022728A1|2012-11-21|2014-05-22|Unify Gmbh & Co. Kg|Verfahren zur Steuerung eines Flash-Speichers zur Massenspeicherung, der von einem an einen Host anschließbaren Kommunikationsgerät umfasst ist, und Computerprogrammprodukt zur Ausführung des Verfahrens| DE102013211077B4|2013-06-13|2015-09-24|Infineon Technologies Ag|Verfahren zum Testen eines Speichers und Speichersystem| CN104598330B|2013-10-30|2017-10-20|中国航空工业集团公司第六三一研究所|基于双备份的数据保存和校验方法| KR102157875B1|2013-12-19|2020-09-22|삼성전자주식회사|불휘발성 메모리 장치 및 그것을 포함한 메모리 시스템| US9606870B1|2014-03-31|2017-03-28|EMC IP Holding Company LLC|Data reduction techniques in a flash-based key/value cluster storage| US10025843B1|2014-09-24|2018-07-17|EMC IP Holding Company LLC|Adjusting consistency groups during asynchronous replication| KR20160074836A|2014-12-18|2016-06-29|에스케이하이닉스 주식회사|데이터 저장 장치 및 그것의 동작 방법| US20160276042A1|2015-03-20|2016-09-22|Microchip Technology Incorporated|One Time Programmable Memory| US10007573B2|2015-04-27|2018-06-26|Invensas Corporation|Preferred state encoding in non-volatile memories| US10152527B1|2015-12-28|2018-12-11|EMC IP Holding Company LLC|Increment resynchronization in hash-based replication| KR20180087496A|2017-01-23|2018-08-02|에스케이하이닉스 주식회사|메모리 시스템| CN107102820B|2017-04-17|2018-07-06|北京得瑞领新科技有限公司|一种nand闪存设备的数据处理方法及装置| US10691354B1|2018-01-31|2020-06-23|EMC IP Holding Company LLC|Method and system of disk access pattern selection for content based storage RAID system| WO2020082348A1|2018-10-26|2020-04-30|Yangtze Memory Technologies Co., Ltd.|Data processing method for memory and related data processor|
法律状态:
2011-10-28| RD03| Notification of appointment of power of attorney|Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20111027 | 2011-10-29| RD04| Notification of resignation of power of attorney|Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20111028 | 2012-10-11| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121010 | 2012-10-17| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121016 | 2013-01-17| A601| Written request for extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130116 | 2013-01-31| A602| Written permission of extension of time|Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130130 | 2013-04-10| A02| Decision of refusal|Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130409 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|